package com.atguigu.reducejoin;

import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.mapreduce.Reducer;

import java.io.IOException;
import java.util.Iterator;

public class RJReducer extends Reducer<OrderBean, NullWritable,OrderBean,NullWritable> {

    /*
                    key                         value
         null     1     null     小米            null
        1001      1     1 　     null            null
        1004     1     4        null             null

        思路 ：
            1.获取第一条数据的pname
            2.遍历后面所有的数据
            3.每遍历一条数据就使用第一条数据的pname进行覆盖
            4.每修改一条数据就写出一条
     */
    @Override
    protected void reduce(OrderBean key, Iterable<NullWritable> values, Context context) throws IOException, InterruptedException {
        //迭代器
        Iterator<NullWritable> iterator = values.iterator();
        //1.获取第一条数据的pname
        iterator.next();
        String pname = key.getPname();
        //2.遍历后面所有的数据
        while(iterator.hasNext()){
            iterator.next();
            //3.每遍历一条数据就使用第一条数据的pname进行覆盖
            key.setPname(pname);
            //4.每修改一条数据就写出一条
            context.write(key,NullWritable.get());
        }
    }
}





